Process control systems, like those used in chemical, petroleum or other processes, typically include one or more centralized process controllers communicatively coupled to at least one host or operator workstation and to one or more field devices via analog, digital or combined analog/digital buses. The field devices, which may be, for example, valves, valve positioners, switches, transmitters (e.g., temperature, pressure and flow rate sensors), etc. perform functions within the process such as opening or closing valves and measuring process parameters. The process controller receives signals indicative of process measurements made by the field devices and/or other information pertaining to the field devices, uses this information to implement a control routine or a control module, and then generates control signals that are sent over the buses or other communication lines to the field devices to control the operation of the process. Information from the field devices and the controllers may be made available to one or more applications executed by the operator workstation to enable an operator to perform desired functions with respect to the process, such as viewing the current state of the process, modifying the operation of the process, etc.
Process control system applications typically include process control routines that can be configured to perform various functions or operations in a process control system. For example, process control routines may be used to control valves, motors, boilers, heaters, etc. Process control routines may also be used to monitor field devices, plant areas, etc. and to collect information associated with a process control system. Field devices used to implement the process control routines are typically coupled to one another and to a process controller via a data bus. However, these data buses have limited resources including limited bandwidth available for field devices and process controllers to communicate information to one another. In some cases, to ensure that sufficient time is available on the data bus for all of the field devices and controllers to execute their respective functions and to communicate information therebetween, schedules are generated to indicate when the controllers and the field devices should execute their respective functions and communicate over the data bus.
The FOUNDATION® Fieldbus (FF) communication protocol and specification, which is well known in the art of process control systems, is an all digital communication protocol that enables function blocks, generally known as FOUNDATION® Fieldbus (FF) function blocks, to be located in various field devices, such as valves, transmitters, etc., and to communicate with one another over a communication link or bus to implement control loops. A set of interconnected function blocks which implement a particular control loop or function is generally referred to as a process control module, and such process control modules may have function blocks disposed in various different devices connected to a Fieldbus communication bus, also called a Fieldbus segment. As is generally known, the communications over a particular Fieldbus segment are determined by a communication schedule which is generated for the segment, typically by an operator or a configuration engineer, when setting up or configuring the Fieldbus segment. Generally speaking, a communication schedule for a particular Fieldbus segment defines each of the synchronous communications to occur over the bus of the Fieldbus segment during each of a set of repeating macrocycles.
In the past, it was known to configure a particular control module to operate in a distributed manner using the capabilities of the FF protocol, by placing all or at least some of the function blocks making up the module in the FF field devices connected to a Fieldbus segment, and allowing those blocks to communicatively interact with one another in a precisely scheduled manner to perform the control loop. Unfortunately, in many cases, not all of the function blocks making up a particular control module could be executed in the actual field devices connected to a Fieldbus segment, as many of the function blocks were simply not supported by the particular field devices connected to the Fieldbus segment. In these cases, it was necessary or standard practice to place some of the function blocks, typically the control function blocks which implement control calculations (e.g., proportional, integral and derivative (PID) control routines), in a controller connected to the Fieldbus segment via an input/output device. The FOUNDATION® Fieldbus defines and supports a number of such input/output devices, the most common of which is referred to as an H1 card or H1 device.
However, when a function block of a particular control module is placed in and executed in the controller, this function block is executed asynchronously with respect to the execution and operation of the function blocks located in the FF field devices connected to the Fieldbus segment, as the controller is not directly connected to and therefore does not participate directly in the communication schedule of the Fieldbus segment. As a result, in this case, the overall execution rate of the control module itself is slowed down, as compared to control modules run entirely within the Fieldbus segment, due to the fact that communications between the controller and field devices on the Fieldbus segment have to be managed by the input/output device outside of the Fieldbus segment schedule to assure delivery of signals between the controller (executing one of the function blocks of a control module) and the FF field devices (executing others of the function blocks of the control module). Thus, unfortunately, a control module having function blocks disposed in both the FF field devices and a controller cannot generally execute in a single macrocycle defined by the Fieldbus segment schedule, but instead has to operate over a series of macrocycles of the Fieldbus segment schedule to allow for proper communications between the controller and the FF field devices through the input/output device.
Thus, currently, some or all of the function blocks required to implement a control loop may be assigned to the Fieldbus devices, based on the identity of the actual FF field devices a customer has purchased and installed in the process control system. However, if one or more of the blocks needed to implement a particular control loop (or control module) is not assigned to a Fieldbus device, then these blocks are executed in the controller which is not on the Fieldbus segment. Splitting the blocks in this manner introduces significant delay into the control loop, because the execution of the blocks in the controller is not synchronized with the execution of the blocks on the Fieldbus segment.